// 需要初始化的api
export const ASSETS_TYPE = ["component", "directive", "filter"];

// 注册
export function initAssetRegisters(Vue) {
	ASSETS_TYPE.forEach((type) => {
		Vue[type] = function (id, definition) {
			switch (type) {
				case "component":
					// 注册全局组件
					// 使用自定义的extend方法将对象变成Vue的构造函数
					// 避免子组件的Vue.component
					definition = this.options._base.extend(definition);
					break;
				case "directive":
					break;
				case "filter":
					break;
				default:
					break;
			}
			// 加到对应的地方
			this.options[type + "s"][id] = definition;
		};
	});
}
